Lab06 memory mapping #6
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Laborator 6
Exercițiul 1
Am alocat
(NPAGES + 2) * PAGE_SIZEmemorie (o pagină se va pierde probabil la găsirea primei alinieri), apoi înkmalloc_areaam reținut prima adresă aliniată cu dimensiunea unei pagini prinPAGE_ALIGN.În funcția ce implementează funcționalitatea
mmapam identificatPFN-ul și am mapat memoria fizică anterior alocată la cea virtuală curemap_pfn_range.Exercițiul 2
Foarte asemănător cu exercițiul anterior, de această dată memoria fizică nu mai este continuă și de aceea trebuie să iteram prin toate paginile și să le mapăm individual pe fiecare.
Exercițiul 3
Am implementat funcțiile
my_readșimy_writece preiau, respectiv trimit informații de la/către userspace.Exercițiul 4
Folosind
create_proc_entry(de faptcreate_proc) am instantiat un nou fișier/proc. Dacă apelul s-a efectuat cu succes atunci se va asigna membruluiproc_fopsstructuramy_proc_opscare este deja definită.În funcția de
exita modulului am folositremove_proc_entrypentru a șterge fișierul.În funcția
my_seq_showam extras câmpulmmdincurrent; iterand prin toate mapările am adăugat diferența dintrestartșiendla variabilatotalși am afișat valorile acestora. La final am afișat valoarea variabileitotalfolosindseq_printfșisingle_open.